#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
//    QPushButton* pushbutton = new QPushButton(this);
//    pushbutton->setText("关闭");
//    pushbutton->move(200,200);
//    connect(pushbutton,&QPushButton::clicked,this,&Widget::close);

//    QPushButton* button = new QPushButton(this);
//    button->setText("按钮");
//    button->move(200,200);
//    connect(button,&QPushButton::clicked,this,&Widget::hanleClicked);

//    //自定义信号
//    //connect(this,&Widget::mySignals,this,&Widget::handleMySignal);
//    //emit mySignals();//主动发送

//    connect(this,&Widget::mySinals2,this,&Widget::handleMysignal2);

    //
//    QPushButton* button1 = new QPushButton(this);
//    button1->setText("设置窗口标题为标题1");
//    button1->move(200,200);
//    connect(button1,&QPushButton::clicked,this,&Widget::hanleClicked1);
//    QPushButton* button2 = new QPushButton(this);
//    button2->setText("设置窗口标题为标题2");
//    button2->move(200,300);
//    connect(button2,&QPushButton::clicked,this,&Widget::hanleClicked2);
//    connect(this,&Widget::mySinals2,this,&Widget::handleMysignal2);

    //测试一个信号关联两个不同的槽函数
    connect(this,&Widget::testSinal,this,&Widget::test1);
    connect(this,&Widget::testSinal,this,&Widget::test2);
    emit testSinal();
    //测试结果,两个函数都会被执行
}

Widget::~Widget()
{
    delete ui;
}

void Widget::hanleClicked()
{
    //按下按钮就修改窗口的标题
    //this->setWindowTitle("按钮已经按下");

    //按下按钮发射自定义信号
    //emit mySignals();

    //按下按钮发射带参数的自定义信号
    emit mySinals2("带信号的自定义参数");

}

void Widget::handleMySignal()
{
    this->setWindowTitle("处理自定义信号");
}

void Widget::handleMysignal2(const QString &text)
{
    this->setWindowTitle(text);
}

void Widget::hanleClicked1()
{
    emit mySinals2("标题1");
}

void Widget::hanleClicked2()
{
    emit mySinals2("标题2");
}

void Widget::test1()
{
    qDebug()<<"test1";
}

void Widget::test2()
{
    qDebug()<<"test2";
}



